package view.utils;

import java.rmi.RemoteException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
//import view.PosteDeTirView;

import server.models.equipe.Equipe;
import server.models.equipe.IEquipe;
import server.models.posteDeTir.IPosteDeTir;
import server.models.posteDeTir.PosteDeTir;

public class JOptionPaneFactory {

	public static IPosteDeTir choisirPosteDeTir(ArrayList<IPosteDeTir> postesDeTir) {

		String[] choix = JOptionPaneFactory.getChoixPosteDeTir(postesDeTir);

		int indexPoste = JOptionPane.showOptionDialog(
				null,
				"Choisissez le poste de tire voulu",
				"Choix du poste de tir",
				JOptionPane.PLAIN_MESSAGE,
				0, 
				null,
				choix,
				"");

		if (indexPoste < 0) {
			return null;
		}

		return postesDeTir.get(indexPoste);
	}

	private static String[] getChoixPosteDeTir(ArrayList<IPosteDeTir> listePosteDeTir) {
		ArrayList<String> choix = new ArrayList<String>();
		try {
			for(IPosteDeTir poste : listePosteDeTir) {
				choix.add("Poste " + poste.getNumero());
			}
		} catch (RemoteException e) {
			e.printStackTrace();
		}

		String []strArray = new String[choix.size()];
		return choix.toArray(strArray);
	}

	public static IEquipe choisirEquipe(ArrayList<IEquipe> equipe) throws RemoteException {

		String[] choix = JOptionPaneFactory.getChoixEquipe(equipe);

		int indexPoste = JOptionPane.showOptionDialog(
				null,
				"Choisissez l'équipe voulue",
				"Choix de l'équipe",
				JOptionPane.PLAIN_MESSAGE,
				0, 
				null,
				choix,
				"");

		if (indexPoste < 0) {
			return null;
		}

		return equipe.get(indexPoste);
	}

	private static String[] getChoixEquipe(ArrayList<IEquipe> equipes) throws RemoteException {
		ArrayList<String> choix = new ArrayList<String>();
		for(IEquipe equipe : equipes) {
			choix.add("Équipe " + equipe.getNom());
		}

		String []strArray = new String[choix.size()];
		return choix.toArray(strArray);
	}

	public static String choisirNomDeParticipant(String message) {
		String nom = (String)JOptionPane.showInputDialog(
				null,
				message,
				"Boîte d'identification",
				JOptionPane.PLAIN_MESSAGE,
				null,
				null,
				"");
		return nom;
	}
	
	public static String choisirAdresseIP(String message) {
		String adresseIPServeur = (String)JOptionPane.showInputDialog(
				null,
				message,
				"Boîte d'identification",
				JOptionPane.PLAIN_MESSAGE,
				null,
				null,
				"");
		return adresseIPServeur;
	}
}
